前言
歡迎回到我們的30天人臉技術探索之旅!今天,我們將深入研究人臉特徵點檢測,這是人臉識別中的一個關鍵任務。特徵點檢測是指識別人臉上的特定區域,如眼睛、鼻子、嘴巴等部位,並返回它們的精確位置。可參考下圖(圖片 ref):
為什麼需要特徵點檢測?
特徵點檢測在許多人臉相關應用中起著關鍵作用,包括情緒分析、人臉變換、虛擬化妝和人臉動作捕捉等。它不僅可以幫助我們識別人臉,還可以提供更多的上下文信息。舉個例子來說,在 DMS (Driver Moniter System)應用中,我們可以透過預測出人臉上的關鍵點來判斷是否駕駛閉眼(ex.可能在睡覺)。如下圖(圖片 ref)
我們可以透過判斷眼睛的高度寬度來判斷現在使否在閉眼!
一些常見的特徵點
在人臉特徵點檢測中,其實有各種不同的特徵點定義,但基本上有一些共同常見的特徵點,包括但不限於:
- 眼睛:通常有左眼和右眼的兩個特徵點(至少各一點在瞳孔,但常見的有描述眼睛周圍一圈的),它們可以幫助識別人臉的方向和注視點。
- 鼻子:鼻尖和鼻翼的特徵點可以用來確定鼻子的位置和形狀。
- 嘴巴:通常有上唇和下唇的特徵點,它們可以幫助識別微笑或張嘴等表情。
常見的特徵點集合有 68 點以及 5 點(圖片 ref),如下:
這兩種各有各的優缺點,68點的描述較為詳細但同時也較為繁瑣,5點的話則較簡略但細節有缺失更多(甚至沒有描述嘴吧)但這兩者皆屬於常用的 Facial landmark 定義,我們可以透過 Dlib 去使用這樣的模型,詳可以參閱 Dlib 官方範例
特徵點檢測方法
在過去,特徵點檢測通常使用基於手工設計的特徵和機器學習方法,如支持向量機(SVM)或回歸模型。這些方法依賴於預先定義的特徵,例如邊緣、角點和紋理,以及相關的學習算法。
然而,近年來,深度學習方法已經改變了特徵點檢測的方式。卷積神經網絡(CNN)已經被廣泛應用於特徵點檢測任務。以下是一些流行的深度學習模型:
1.簡單的 CNN 模型:一些簡化的CNN模型也可以用於特徵點檢測,尤其是當特徵點的數量有限時。相較於 Face detection,Facial landmark 這個 task 是不是感覺單純多了,就只要在人臉照片上預測出各個定義好的關鍵點的位置,因此 Facial landmark model 其實就像是一個 regression model,在輸入一張人臉的情況下,模型去回歸出各個特定點的位置(ex. 68 組(x,y))
2.Hourglass 網絡:這種網絡結構是一個網絡中的網絡,專門設計用於關鍵點檢測。它具有多層次的特徵提取和下採樣,然後再上採樣以預測特徵點的位置。最開使用在人體關鍵點偵測,後來大家覺得非常好用所以像是 Landmark 預測領域也參考了這樣的模型,像是這一篇
3.特殊的模型:Hourglass 這類型的模型固然厲害,但速度確實有會慢不少,因此我們有沒有辦法加速他呢?ex. PIPNet
我們再接下來的篇章就會依序介紹以上 3 種 model的技術細節!
而 Facail landamrk 還有另一種比較特殊的作法,稱為 3DMM 的做法,他是讓 model 直接去預測出完整的 3D 人臉模型,如下動圖
而這個 3D 人臉模型也是一開始就 predefine 好的,因此成功預測一個能夠 fit 人臉的 3D 人臉模型之後,他在直接去這個模型上找人臉關鍵點所對應到的特定編號的點就會能得到該關鍵點的座標( 會需要做 3D點轉到 2D平面上的轉換,這有牽涉到相機模型投影,但不會是個大問題)在本階段不會介紹這種 3D model 的方法!
訓練特徵點檢測模型
訓練特徵點檢測模型通常需要標記數據集,其中包含了人臉圖像以及相應的特徵點標籤。這些標籤通常由人工標記,或者使用自動標記工具,如dlib或OpenCV中的特徵點檢測器。然後,使用這些標記數據來訓練深度學習模型,以預測新圖像中的特徵點位置。常見的 Landmark model 像是 (a) LFPW, (b) HELEN, (c) AFW, (d) AFLW, (e) 300-W ‘Indoor’ and (f) 300-W ‘Outdoor’. 如下圖:
我們在接下來的章節中會帶領大家使用知名的 Facial landmark model 一起訓練出自己的 facial landmark model!
應用範疇
人臉特徵點檢測在許多應用中都有用武之地。像是迪士尼在拍動畫時需要捕捉演員的人臉關鍵點(動作捕捉)才方便製作動畫:
以下是一些應用範疇:
- 情緒識別:通過檢測嘴巴和眼睛的位置,可以分析人的表情並識別情緒。
- 虛擬妝容:特徵點檢測可用於確定嘴巴、眼睛和眉毛的位置,以幫助虛擬化妝應用。
- 人臉變換:特徵點可以用於人臉變換,如面部交換或變老。
- 人臉對齊:常見於其他人臉應用的前製做, ex.人臉辨識的前製作業
總結
人臉特徵點檢測是人臉相關技術中的重要一環,它有廣泛的應用,從情緒識別到虛擬妝容。近年來,深度學習方法已經改變了特徵點檢測的方式,使其更準確且適應性更強。希望這一章能幫助您更深入地理解人臉特徵點檢測的重要性和方法。那麼下一章開始我們會開始講述如何建構自己的人臉關鍵點預測模型!
Ref
- Asthana, A., Zafeiriou, S., Cheng, S., & Pantic, M. (2014). Incremental face alignment in the wild. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 1859-1866).
-
Kuwahara, Akihiro, et al. "Eye fatigue estimation using blink detection based on Eye Aspect Ratio Mapping (EARM)." Cognitive Robotics 2 (2022): 50-59.
- Bulat, A., & Tzimiropoulos, G. (2017). How far are we from solving the 2D & 3D face alignment problem? (and a dataset of 230,000 3D facial landmarks). In Proceedings of the International Conference on Computer Vision (ICCV) (pp. 1021-1030).
- Kazemi, V., & Sullivan, J. (2014). One millisecond face alignment with an ensemble of regression trees. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 1867-1874).
- Sagonas, C., Antonakos, E., Tzimiropoulos, G., Zafeiriou, S., & Pantic, M. (2016). 300 faces in-the-wild challenge: The first facial landmark localization challenge. In Proceedings of the IEEE International Conference on Computer Vision (ICCV) Workshops (pp. 397-403).
- Newell, A., Yang, K., & Deng, J. (2016). Stacked Hourglass Networks for Human Pose Estimation. In European Conference on Computer Vision (ECCV).
-
3DDFMv2
- Yang, Jing, Qingshan Liu, and Kaihua Zhang. "Stacked hourglass network for robust facial landmark localisation." Proceedings of the IEEE conference on computer vision and pattern recognition workshops. 2017.
- Jin, Haibo, Shengcai Liao, and Ling Shao. "Pixel-in-pixel net: Towards efficient facial landmark detection in the wild." International Journal of Computer Vision 129 (2021): 3174-3194.